Point of sale data collection

ABSTRACT

A point of sale (POS) data collection system includes a POS data collector that is implemented as a hardware device and/or in software. The collector may be installed at the point of sale in retail stores, for example, between a barcode scanner and the POS application running on a POS terminal (for example, the cash register). When a product is scanned at the point of sale, the collector may intercept the barcode as it transmitted from the barcode scanner to the POS application. After intercepting the barcode, the collector may transmit the barcode to the POS application without noticeable delay, so that the collector does not interrupt standard business processes. In addition, the collector may send the barcode to a remote server via a network connection. In this manner, the remote server may collect POS data that covers a significant number of products, retailers, and locations.

RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent Application No. 61/364,780 filed Jul. 15, 2010 and entitled “Point of Sale Data Collection.” The entire contents of the above-identified priority application are hereby fully incorporated herein by reference.

TECHNICAL FIELD

The present disclosure relates generally to collecting point of sale (POS) data and, more particularly, to intercepting POS data as it is sent from a POS scanner to a POS application running on a POS terminal.

BACKGROUND

Computer networks, such as the internet, enable transmission and reception of a vast array of information. In recent years, for example, some commercial retail stores have attempted to make product inventory information available to customers over the internet. However, most retailers' inventory information is stored in legacy systems from which it is time consuming and expensive to transition. As a result, much of the online inventory information provided by individual retailers is inaccurate. Similarly, a number of third party businesses have attempted to organize local product information across multiple retailers, and to provide the information over the internet. These attempts also have not been successful, likely due to difficulties accessing reliable data with high coverage of products, retailers, and locations.

Thus, it is desirable to have a system that provides customers with accurate local product information covering a significant number of products, retailers, and locations.

SUMMARY

In an exemplary aspect, a point of sale (POS) data collection system includes a storage resource, at least one input/output (I/O) module, a network module, and a processor. The processor is communicatively coupled to the storage resource, the at least one I/O module, and the network module. The processor executes application code instructions that are stored in the storage resource and that cause the POS data collection system to receive, via the at least one I/O module and from a POS scanner, an identifier corresponding to a product scanned via the POS scanner; transmit, via the at least one I/O module, the identifier to a POS terminal; establish, via the network module, a connection with a computing device that is remote from a location of the POS scanner; and transmit, via the network module, the identifier to the remote computing device.

According to another exemplary aspect, a computer-implemented method for gathering point of sale (POS) data comprises receiving, by a computer, a first identifier associated with a first product. The first identifier is received from a POS scanner. The computer transmits the first identifier to a POS application. The computer also establishes a connection with a computing device that is remote from a location of the POS scanner and transmits data comprising the first identifier to the remote computing device.

In yet another exemplary aspect, a computer-implemented method for gathering point of sale (POS) data comprises receiving, by a computer that is remote from a location of a POS system, product data comprising a product identifier associated with a product. The POS system comprises a POS scanner, a POS data collection device, and a POS terminal. The product identifier has been obtained by the POS scanner during a scanning operation of the POS system. The scanning operation of the POS system comprises the POS scanner obtaining the product identifier and transmitting the product identifier to the POS data collection device and the POS data collection device reading the product identifier and transmitting the product identifier to the POS terminal. The remote computer receives the product data from the POS data collection device.

These and other aspects, objects, features, and advantages of the exemplary embodiments will become apparent to those having ordinary skill in the art upon consideration of the following detailed description of illustrated exemplary embodiments, which include the best mode of carrying out the invention as presently perceived.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram depicting a system for collecting POS data, in accordance with certain exemplary embodiments.

FIG. 2 is a block diagram depicting a system for collecting POS data, in accordance with certain exemplary embodiments.

FIG. 3 is a block diagram depicting a POS data collector, in accordance with certain exemplary embodiments.

FIG. 4 is a block flow diagram depicting a method for collecting POS data, in accordance with certain exemplary embodiments.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS Overview

The method and system described herein enable the accurate collection of the world's local point of sale (POS) data. A POS data collection system can include a POS data collector that is implemented as a hardware device and/or in software. The adapter may be installed at the point of sale in retail stores, for example, between a barcode scanner and the POS application running on a POS terminal (for example, the cash register). When a product is scanned at the point of sale, the adapter may intercept the barcode as it transmitted from the barcode scanner to the POS application. After intercepting the barcode, the adapter may transmit the barcode to the POS application without noticeable delay, so that the adapter does not interrupt standard business processes. In addition, the adapter may send the barcode to a remote server via a network connection. In this manner, the remote server may collect POS data that covers a significant number of products, retailers, and locations.

One or more aspects of the invention may comprise a computer program that embodies the functions described and illustrated herein, wherein the computer program is implemented in a computer system that comprises instructions stored in a machine-readable medium and a processor that executes the instructions. However, it should be apparent that there could be many different ways of implementing the invention in computer programming, and the invention should not be construed as limited to any one set of computer program instructions. Further, a skilled programmer would be able to write such a computer program to implement an embodiment of the disclosed invention based on the appended flow charts and associated description in the application text. Therefore, disclosure of a particular set of program code instructions is not considered necessary for an adequate understanding of how to make and use the invention. Further, those skilled in the art will appreciate that one or more aspects of the invention described herein may be performed by hardware, software, or a combination thereof, as may be embodied in one or more computing systems. Moreover, any reference to an act being performed by a computer should not be construed as being performed by a single computer as the act may be performed by more than one computer. The inventive functionality of the invention will be explained in more detail in the following description, read in conjunction with the figures illustrating the program flow.

Turning now to the drawings, in which like numerals indicate like elements throughout the figures, exemplary embodiments of the invention are described in detail.

System Architecture

FIG. 1 depicts a system 100 for collecting POS data, in accordance with certain exemplary embodiments. As depicted in FIG. 1, system 100 may comprise POS data collector 105, POS scanner 110, POS terminal 115, and remote system 150. POS data collector 105 may be connected to POS scanner 110 via connection 120, and to POS terminal 115 via connection 125. POS data collector 105 may communicate with POS scanner 110 and POS terminal 115 using any standard or proprietary storage and/or communication protocol, including without limitation, universal serial bus (USB), RS-232, and/or any combination thereof. And while the embodiment in FIG. 1 depicts wired connections 120 and 125, either or both of these connections may be replaced with a wireless communication link (for example, Wi-Fi, MiFi, Bluetooth, etc.) in accordance with certain other exemplary embodiments. Additionally, while POS data collector 105 is depicted as a standalone hardware device in FIGS. 1 and 2, one or more components of POS data collector 105 may be integrated into one or both of POS scanner 110 and POS terminal 115, in accordance with alternative exemplary embodiments. For example, one or more components of POS data collector 105 may be implemented as a software module or firmware in one or both of POS scanner 110 and POS terminal 115.

As depicted in FIG. 1, the POS scanner 110 may be a traditional wired, generally stationary barcode scanner, in accordance with certain exemplary embodiments. FIG. 2 depicts system 200 according to an alternative embodiment wherein POS scanner includes POS wireless barcode scanner 212 and POS wireless base station 210. In this alternative embodiment, POS data collector 105 may communicate with POS wireless base station 210 in the same way the POS data collector 105 communicates with POS scanner 110 of FIG. 1. While FIGS. 1 and 2 illustrate different exemplary embodiments, it should be appreciated that the POS data collector 105 may be used similarly in POS systems with hardware that varies from that depicted in FIGS. 1 and 2.

According to an exemplary embodiment, POS scanner 110 may be a barcode scanner and may be configured to read any number of barcode formats, including without limitation UPC, EAN, JAN, etc. According to other exemplary embodiments, POS scanner 110 may be an RFID reader or any other device that is capable of reading product identifier information in a POS system.

As further depicted in FIG. 1, POS data collector 105 may be communicatively coupled to remote system 150 via network 140. Network 140 may be implemented as, or may be a part of, a storage area network (SAN), personal area network (PAN), local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the Internet, or any other appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data). POS data collector 105 may connect to network 140 via connection 135. According to an exemplary embodiment, connection 135 may be a dedicated cellular modem connection. In an alternative embodiment, connection 135 may be a wired Ethernet connection, a Wi-Fi or Bluetooth connection to a hotspot that has a wired/wireless internet connection (for example, MiFi), or any other wired or wireless connection suitable for communicating signals with network 140.

FIG. 3 depicts a block diagram of POS data collector 105, in accordance with certain exemplary embodiments. Components of POS data collector 105 may include, but are not limited to, processor 360, storage resource 362, network module 364, input/output (I/O) module 366, clock module 368, GPS module 370, and error indicator 130 (error indicator 130 is also depicted in FIGS. 1 and 2). As depicted, processor 360 may be communicatively coupled to each of the other components of POS data collector 105.

Processor 360 may comprise any system, device, or apparatus operable to interpret and/or execute program instructions and/or process data associated with software module 380, and may include, without limitation a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments, processor 360 may interpret and/or execute program instructions and/or process data stored locally (for example, in storage resource 362). In the same or alternative embodiments, processor 360 may interpret and/or execute program instructions and/or process data stored remotely (for example, in a network storage resource (not depicted) of network 140 of FIGS. 1 and 2).

Local storage resource 362 may comprise computer-readable media (for example, hard disk drive, floppy disk drive, CD-ROM, and/or other type of rotating storage media, flash memory, EEPROM, and/or other type of solid state storage media) and may be generally operable to store data.

Network module 364 may be any suitable system, apparatus, or device operable to serve as an interface between information POS data collector 105 and network 140 (FIGS. 1 and 2). Network module 364 may enable information POS data collector 105 to communicate over network 140 using any suitable transmission protocol and/or standard, including without limitation all transmission protocols and/or standards enumerated above with respect to the discussion of network 140 and connection 135.

I/O module 366 may be any system, device, or apparatus generally operable to receive and/or transmit data to/from/within information POS data collector 105. I/O module 366 may comprise, for example, any number of communication interfaces, including without limitation a USB interface and/or an RS-232 interface.

Clock module 368 may be any system, device, or apparatus generally operable to maintain an internal clock. According to certain exemplary embodiments, clock module 368 may synchronize with the UTC (coordinated universal time). Additionally, clock module 368 may be configured to maintain an accurate internal clock when power to POS data collector 105 is removed (for example, via an independent battery power source).

GPS module 370 may be any system, device, or apparatus generally operable to determine and provide the location of POS data collector 105 based on global positioning satellite signals or other similar methods (for example, via location information received by network module 364).

Error indicator 130 may be any system, device, or apparatus generally operable to provide an indication that may be detected visually or audibly by a person near POS data collector 105. For example, error indicator 130 may be a visible LED light, in accordance with certain exemplary embodiments. In the same or alternative embodiments, error indicator may be an audible speaker capable of producing an audible noise.

The POS data collector 105 is described in more detail hereinafter with reference to the methods depicted in FIG. 4.

System Process

FIG. 4 is a block flow diagram depicting a method 400 for collecting POS data, in accordance with certain exemplary embodiments. The method 400 is described with reference to components illustrated in FIGS. 1-3.

In block 405, a software module 380 of a POS data collector 105 may wait to obtain a product identifier associated with a product that is being purchased. For example, POS scanner 110 is used to scan the barcode of a product that is being purchased. After scanning, the POS scanner 110 transmits the product identifier for processing by a POS application running on POS terminal 115. Because the POS data collector 105 is communicatively coupled between POS scanner 110 and POS terminal 115, POS data collector 105 may obtain the product identifier associated with the purchased product as the identifier is transmitted to the POS terminal 115.

In block 410, software module 380 may transmit an unmodified version of the product identifier to POS terminal 115. In accordance with certain exemplary embodiments, this transmission may be performed without noticeable delay so that the addition of POS data collector 105 to POS system 100 does not interfere with the normal business flow. In other words, the POS application running on POS terminal 115 will be able to proceed with the purchase transaction, and will not be noticeably delayed by the addition of the POS data collector 105 to POS system 100.

In block 415, the software module 380 may establish a connection with remote system 150 via network module 364 and network 140. According to an exemplary embodiment, software module 380 may establish this connection by resolving the host name and/or address via DNS or other protocols, and subsequently communicating with remote system 150 to establish the connection. If a connection is successfully established (block 420), software module 380 may proceed to block 425 and may transmit the product identifier to remote host 150. According to certain exemplary embodiments, this transmission may be via the HTTPS protocol, or any other protocol suitable for communicating data over network 140 to remote system 150. According to exemplary embodiments that utilize the HTTPS protocol, software module 380 may verify the validity of the SSL certificate, and may not transmit data if validity is not established.

According to an exemplary embodiment, the data transmission in block 425 may include only the product identifier. In other embodiments, software module 380 may transmit additional data to remote server 150. In both cases, and according to the HTTPS protocol used in an exemplary embodiment, the transmitted data may be sent as a body of a POST request over HTTPS. Thus, when only the product identifier is transmitted, the body of the POST request may contain the following fields:

scan:<product_identifier>

In an alternative embodiment, software module 380 may provide additional data including, but not limited to, one or more of the following: a merchant identifier, a store identifier (for example, for merchants with more than one store), a scanned product count, a current time stamp, a device identifier (for example, a manufacturer-issued serial number), a security key (for example, for secure communication), a software version number, and a device GPS coordinate. In accordance with this alternative embodiment, the body of the POST request may contain one or more of the following fields:

serial:<device_identifier> key:<security key> version:<software version> currenttime:<current_time> sequence:<scanned_product_count> store:<store_identifier> gps:<gps_coordinates> scan:<product_identifier>

In yet another exemplary embodiment, software module 380 may provide a time stamp indicating when the product identifier was scanned by the POS scanner. According to this embodiment, the body of the POST requests depicted above may be modified as follows:

scan:<product_identifier>:<timestamp>

In block 445, software module 380 may determine if the transmission was successful. For example, according to the a transmission via HTTPS, software module 380 may receive a HTTP 200/OK response with an empty body when the transmission is successful. Alternatively, software module 380 may receive either a 4xx or 5xx HTTP error if the transmission is unsuccessful.

If the data transmission is not successful (block 445), software module 380 may proceed to block 450, where it may determine if a predetermined retry count has been exceeded. If the retry count has not been exceeded, software module 380 may increment the retry count and proceed back to block 425 where it may again attempt to transmit the product identifier (and any other data, as described above) to remote system 150. According to an exemplary embodiment, software module 380 may proceed to block 425 immediately. In other embodiments, software module 380 may wait for a predetermined amount of time (for example, 1, 5, 10, etc. minutes) before retrying the transmission. In yet another exemplary embodiment, software module 380 may wait for 1 minute before retrying (the “timeout interval”), and if the next attempted transmission is unsuccessful, double the timeout interval. In this embodiment, software module 380 may continue to double the timeout interval for each consecutive failed transmission attempt until the timeout interval is 32 minutes, at which point software module 380 may keep trying to transmit the data every 32 minutes.

In the event the number of transmission attempts exceeds the predetermined retry count in block 450, software module 380 may proceed to block 440, and may activate error indicator 130. In this manner, an employee of the retail store may be notified that the POS data collector has encountered an error.

Similarly, if a connection is not successfully established (block 420), software module 380 may proceed to block 435, where it may determine if a predetermined retry count has been exceeded. If the retry count has not been exceeded, software module 380 may increment the retry count and proceed back to block 415 where it may again attempt to establish a connection with remote system 150. Here, a timeout interval algorithm similar to that described above may be used. In the event the number of connection attempts exceeds the predetermined retry count in block 435, software module 380 may proceed to block 440, and may activate error indicator 130. In this manner, an employee of the retail store may be notified that the POS data collector has encountered an error.

In the event the error indicator is activated, software module 380 may proceed back to block 405, where it may wait to obtain the next product identifier associated with an additional product that is being purchased. Thus, software module 380 may continue to operate despite the error condition. In this manner, the POS data collector 105 may at least continue to transmit scanned product identifiers to the POS terminal (block 410) so that the error condition does not interfere with business operations. Additionally, POS data collector 105 may continue to collect data for subsequent transmission to the remote system 150 upon resolution of the errors. According to an exemplary embodiment (not depicted), software module 380 may, in such a case, deactivate the error indicator if a subsequent attempt to establish a connection with remote system 150 or to transmit data to remote system 150 is successful.

Thus, according to the exemplary embodiment of FIG. 4, POS data collector 105 may transmit each product identifier essentially in real time as each product is scanned and without significant delay (in other words, no more delay than is necessary for the method steps of FIG. 4 to be performed).

According to an exemplary embodiment and as an alternative to transmitting POS data in real time, POS data collector 105 may accumulate POS data and transmit the accumulated data to remote system 150 periodically. For example, software module 380 may store accumulated product identifiers and corresponding time stamps in storage resource 362 until such time as they are transmitted to remote system 150. In one embodiment, for example, software module 380 may accumulate product identifiers for a predetermined amount of time (for example, 5, 15, 30, etc. minutes) before transmitting the data to remote server 150. In yet another embodiment, software module 380 may accumulate product identifiers and may transmit the data to remote server 150 after a predetermined number of identifiers (for example, 5, 100, 1000, etc.) have been accumulated.

In still a further embodiment, software module 380 may accumulate POS data and use both a time period and a predetermined product identifier count to determine when to transmit the data to remote system 150. According to this exemplary embodiment, software module 380 may buffer product identifiers for a predetermined amount of time or until a predetermined number of product identifiers are accumulated—whichever comes first. In still another embodiment, software module 380 may accumulate POS data until a predetermined amount of data is accumulated (for example, 1 kB, 1 MB, etc.). Accordingly, the data transmission may be optimized to minimize traffic while still sending updates with reasonable frequency.

Thus, software module 380 may transmit only the accumulated product identifiers, in accordance with an exemplary embodiment. In such a case, the body of an HTTPS request may be formatted as follows:

scan:<product_identifier>:<timestamp> scan:<product_identifier>:<timestamp> . . .

In embodiments where the software module 380 provides data in addition to the product identifiers, the body of the POST request may contain one or more of the following fields:

serial:<device_identifier> key:<security key> version:<software version> currenttime:<current_time> sequence:<scanned_product_count> store:<store_identifier> gps:<gps_coordinates> scan:<product_identifier>:<timestamp> scan:<product_identifier>:<timestamp> . . .

In the exemplary embodiments described above, the connection to remote system 150 via network module 364 and network 140 may be kept open or may be closed between transmissions.

POS data collector 105 may transmit an alive indicator to remote system 150, in accordance with an exemplary embodiment. For example, regardless of whether any products are scanned, software module 380 may send an alive indicator to remote system 150 on a periodic basis (for example, every 4, 6, 8, etc. hours). Software module 380 may transmit an alive indicator using steps similar to those described in FIG. 4. For example, software module 380 may perform the same retry/error algorithm when attempting to establish a connection with remote system 150 and to transmit the alive indicator.

According to exemplary embodiments that utilize the HTTPS protocol for transmission, the HTTPS transmission for an alive indicator may be directed to a URL that is different from the URL used for transmitting product identifier(s). In addition, the body of an alive indicator POST request may contain one or more of the following fields:

serial:<device_identifier> key:<security key> version:<software version> currenttime:<current_time> sequence:<scanned_product_count>

Accordingly, remote system 150 may use the alive indicator transmission to monitor POS data collector 105 for errors. In other words, remote system 150 may determine that POS data collector 105 is not operating if it does not receive an alive indicator according to the predetermined periodic schedule. Thus, a POS data collection system provider can arrange to troubleshoot POS data collector 105 in the event it stops operating correctly.

General

The exemplary methods and blocks described in the embodiments presented previously are illustrative, and, in alternative embodiments, certain blocks can be performed in a different order, in parallel with one another, omitted entirely, and/or combined between different exemplary methods, and/or certain additional blocks can be performed, without departing from the scope and spirit of the invention. Accordingly, such alternative embodiments are included in the invention described herein.

The invention can be used with computer hardware and software that performs the methods and processing functions described above. As will be appreciated by those having ordinary skill in the art, the systems, methods, and procedures described herein can be embodied in a programmable computer, computer executable software, or digital circuitry. The software can be stored on computer readable media. For example, computer readable media can include a floppy disk, RAM, ROM, hard disk, removable media, flash memory, memory stick, optical media, magneto-optical media, CD-ROM, etc. Digital circuitry can include integrated circuits, gate arrays, building block logic, field programmable gate arrays (FPGA), etc.

Although specific embodiments of the invention have been described above in detail, the description is merely for purposes of illustration. Various modifications of, and equivalent blocks corresponding to, the disclosed aspects of the exemplary embodiments, in addition to those described above, can be made by those having ordinary skill in the art without departing from the spirit and scope of the invention defined in the following claims, the scope of which is to be accorded the broadest interpretation so as to encompass such modifications and equivalent structures. 

1. A point of sale (POS) data collection system, comprising: a storage resource; at least one input/output (I/O) module; a network module; a processor communicatively coupled to the storage resource, the at least one I/O module, and the network module, wherein the processor executes application code instructions that are stored in the storage resource and that cause the POS data collection system to: receive, via the at least one I/O module and from a POS scanner, an identifier corresponding to a product scanned via the POS scanner; transmit, via the at least one I/O module, the identifier to a POS terminal; establish, via the network module, a connection with a computing device that is remote from a location of the POS scanner; and transmit, via the network module, the identifier to the remote computing device.
 2. The POS data collection system of claim 1, wherein the POS data collection systems is implemented as a hardware device for disposition between the POS scanner and the POS terminal.
 3. The POS data collection system of claim 1, wherein at least one component of the POS data collection system is implemented as a software component of either the POS scanner or the POS terminal.
 4. The POS data collection system of claim 1, further comprising an error indicator, wherein the processor activates the error indicator if the connection to the remote system cannot be established or if transmission of the identifier to the remote system is unsuccessful.
 5. The POS data collection system of claim 1, wherein the processor further executes application code instructions that are stored in the storage resource that cause the POS data collection system to timestamp the first identifier to indicate when the first identifier was scanned by the POS scanner, wherein the transmitted data further comprises the first time stamp.
 6. The POS data collection system of claim 1, wherein the first identifier is transmitted to the POS terminal without noticeable delay compared to a transmission of the first identifier from the POS scanner directly to the POS terminal.
 7. The POS data collection system of claim 1, wherein the POS terminal comprises a cash register.
 8. The POS data collection system of claim 1, wherein the transmitted data further comprises at least one of a merchant identifier, a store identifier, a scanned product count, a current time stamp, a product scan time stamp, a device identifier, a security key, a software version number, and a GPS location.
 9. The POS data collection system of claim 1, further comprising storing the identifier in the storage resource, wherein the data is transmitted to the remote computing device either periodically or after a predetermined number of identifiers are received.
 10. A computer-implemented method for gathering point of sale (POS) data, comprising: receiving, by a computer, a first identifier associated with a first product, the first identifier being received from a POS scanner; transmitting, by the computer, the first identifier to a POS application; establishing, by the computer, a connection with a computing device that is remote from a location of the POS scanner; and transmitting, by the computer, data comprising the first identifier to the remote computing device.
 11. The method of claim 10, wherein the transmitted data further comprises a first time stamp indicating when the first identifier was scanned by the POS scanner.
 12. The method of claim 10, wherein the step of transmitting the first identifier to the POS application is performed after receiving the first identifier and without noticeable delay compared to a transmission of the first identifier from the POS scanner directly to the POS application.
 13. The method of claim 10, wherein the POS application comprises a POS terminal.
 14. The method of claim 10, wherein the POS application comprises a cash register.
 15. The method of claim 10, wherein the step of transmitting the data to the remote computing device is performed without significant delay after receiving, by the computer, the first identifier.
 16. The method of claim 10, wherein the step of transmitting the data to the remote computing device is performed periodically.
 17. The method of claim 10, further comprising periodically transmitting, by the computer, an alive indicator to the remote computing device.
 18. The method of claim 10, wherein the transmitted data further comprises at least one of a merchant identifier, a store identifier, a scanned product count, a current time stamp, a product scan time stamp, a device identifier, a security key, a software version number, and a device GPS coordinate.
 19. The method of claim 10, further comprising: storing the first identifier in a storage resource; and receiving, from the POS scanner, at least one additional identifier associated with at least one additional product, wherein the data transmitted in the step of transmitting data further comprises the at least one additional identifier.
 20. The method of claim 19, wherein the transmitted data further comprises: a first time stamp indicating when the first identifier was scanned by the POS scanner; and at least one additional time stamp indicating when the at least one additional identifier was scanned by the POS scanner.
 21. The method of claim 19, wherein the step of transmitting the at least one additional identifier to the POS application is performed after receiving each additional identifier and without noticeable delay compared to a transmission of each additional identifier from the POS scanner directly to the POS application.
 22. The method of claim 19, further comprising storing the at least one additional identifier in the storage resource, wherein the step of transmitting the data to the remote computing device is performed by at least one of periodically or after a predetermined number of additional identifiers are obtained.
 23. The method of claim 10, wherein the computer is implemented as a hardware device for disposition between the POS scanner and the POS application.
 24. The method of claim 10, wherein the computer is implemented as a software component of either the POS scanner or the POS application.
 25. A point of sale (POS) data collection system, comprising: a non-volatile memory; a storage resource; a communication module communicatively coupled between a POS scanner and a POS terminal; a network module; a clock module comprising an internal clock; and a processor communicatively coupled to the non-volatile memory, the storage resource, the communication module, the network module, and the clock module, wherein the processor executes instructions that are stored in at least one of the storage resource and the non-volatile memory and that cause the POS data collection system to: receive a product identifier from the POS scanner; transmit the product identifier to the POS terminal after receiving the product identifier and without noticeable delay compared to a direct communication from the POS scanner to the POS terminal; timestamp, based on the internal clock, the product identifier to indicate when the product identifier was scanned by the POS scanner; read, from the non-volatile memory, a merchant identifier, a store identifier, a device identifier, and a security key; obtain a current time from the clock module; provide a data record comprising at least the current time, the time-stamped product identifier, the merchant identifier, the store identifier, the device identifier, and the security key; establish, via the network module, a connection with a computing device that is remote from a location of the POS scanner; and transmit the data record to the remote computing device via the established connection.
 26. The POS data collection system of claim 25, further comprising an error indicator, wherein the processor activates the error indicator if the connection to the remote system cannot be established or if transmission of the data record to the remote system is unsuccessful.
 27. The POS data collection system of claim 25, further comprising a GPS module communicatively coupled to the processor and that determines a location of the POS data collection system, wherein the data record further comprises the location.
 28. A computer-implemented method for gathering point of sale (POS) data, comprising: receiving, by a computer that is remote from a location of a POS system, product data comprising a product identifier associated with a product, wherein the POS system comprises a POS scanner, a POS data collection device, and a POS terminal, wherein the product identifier has been obtained by the POS scanner during a scanning operation of the POS system, the scanning operation of the POS system comprising the POS scanner obtaining the product identifier and transmitting the product identifier to the POS data collection device and the POS data collection device reading the product identifier and transmitting the product identifier to the POS terminal, wherein the remote computer receives the product data from the POS data collection device.
 29. The method of claim 28, wherein the POS data collection device is implemented in the POS system as a hardware device communicatively coupled between the POS scanner and the POS terminal.
 30. The method of claim 28, wherein the POS data collection device is implemented in the POS system as at least one software component of either the POS scanner or the POS terminal.
 31. The method of claim 28, wherein the received product data further comprises at least one of a merchant identifier corresponding to the POS system, a store identifier corresponding to the POS system, a scanned product count identifying a number of products scanned by the POS system, a current time stamp identifying a time at which the POS data collection device communicated the product data to the remote computer, a product scan time stamp identifying a time at which the POS scanner obtained the product identifier, a device identifier of the POS data collection device, a security key, a software version number, and a GPS location for the POS system.
 32. The method of claim 28, wherein the received product data comprises a plurality of product identifiers for a plurality of products, each of the product identifiers having been obtained by the POS scanner during at least one scanning operation of the POS system.
 33. The method of claim 28, wherein the remote computer receives the product data without significant delay after the POS data collection device reads the product identifier.
 34. The method of claim 28, wherein the remote computer periodically receives the product data from the POS data collection device.
 35. The method of claim 34, wherein the remote computer periodically receives the product data from the POS data collection device based on a time interval.
 36. The method of claim 34, wherein the remote computer periodically receives the product data from the POS data collection device based on a number of product identifiers obtained by the POS system.
 37. A computer program product, comprising: a computer-readable medium having computer-readable program code embodied therein for collecting point of sale (POS) data, the computer-readable medium comprising: computer-readable program code for receiving a first identifier associated with a first product, the first identifier being received from a POS scanner; computer-readable program code for transmitting the first identifier to a POS application; computer-readable program code for establishing a connection with a computing device that is remote from a location of the POS scanner; and computer-readable program code for transmitting data comprising the first identifier to the remote computing device.
 38. A computer-implemented method for configuring a point of sale (POS) data collection system, comprising: obtaining, from a POS scanner, an identifier comprising a unique initialization code; switching the POS data collection system to an initialization mode in response to recognizing the unique initialization code; establishing a connection with a computing device that is remote from a location of the POS scanner; transmitting data comprising at least a portion of the identifier to the remote computing device; receiving response data from the remote computing device, the response data comprising a merchant identifier associated with the POS scanner, a store identifier associated with the POS data, and a security key; storing the response data in a storage resource of the POS data collection system; and switching the POS data collection system to a normal mode of operation. 